const bannerModel = require('../models/bannerModel');
const Jwt = require('../common/jwt');
// 负责轮播图业务逻辑
class Banner {
    // 1. 获取轮播列表
    async getBannerList(req,res){
        await bannerModel.getBannerList()
        .then(
            content=>{
                res.send(content);
            }
        )
        .catch(
            err=>{
                res.send(err)
            }
        )
    }

    // 2. 添加/发布轮播图（中端）
    async addBanner(req,res,next){
       let {banner_picUrl, banner_href, banner_title} = req.body;
       let token = req.body.token ||req.headers.token;
       let jwt = new Jwt(token);
       // 判断token是否在有效期
       let result = jwt.verifyToken();
       if(result.data){
            await bannerModel.addBanner(banner_picUrl, banner_href, banner_title)
            .then(
                content=>{
                    res.send(content);
                }
            )
            .catch(
                err=>{
                    res.send(err)
                }
            )
       }
       else {
            res.send({
                code: -1,
                msg: '登录已过期,请重新登录'
            })
       }

       next();
    }

    // 3. 删除轮播图图 （中端）
    async removeBanner(req,res,next){
        let id = req.body.id;
        let token = req.body.token ||req.headers.token;
        let jwt = new Jwt(token);
        // 判断token是否在有效期
        let result = jwt.verifyToken();
        if(result.data){
            // 删除轮播图数据
            await bannerModel.removeBanner(id)
            .then(
                content=>{
                    res.send(content);
                }
            )
            .catch(
                err=>{
                    res.send(err)
                }
            )
    
        }
        else {
            res.send({
                code: -1,
                msg: '请先登录账号。'
            })
        }
       
        next();
    }

    // 4. 编辑轮播图（中端）
    async editBanner(req,res,next){
        let {id,banner_picUrl,banner_href,banner_title} = req.body;
        let token = req.body.token ||req.headers.token;
        let jwt = new Jwt(token);
        // 判断token是否在有效期
        let result = jwt.verifyToken();
        if(result.data){
            // 编辑轮播图数据
            await bannerModel.editBanner(id,banner_picUrl,banner_href,banner_title)
            .then(
                content=>{
                    res.send(content);
                }
            )
            .catch(
                err=>{
                    res.send(err)
                }
            )
    
        }
        else {
            res.send({
                code: -1,
                msg: '请先登录账号。'
            })
        }
       
        next();
    }
}

module.exports = new Banner();